/*#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int i;
    int t=1;

    if(a!=0 && b!=0){
        int min=a;

        if(a>b){
            min=b;
        }else{min=a;}
         if(min==1){
            printf("%d",min);
         }else{
            i=min;
         for(;i>=1;i--){
            if( a%i==0 && b%i==0){
                t=i;
            break;}
         }
        }
        printf("%d",t);
    }else{
        if(a!=0){
            printf("%d",a);
        }else{printf("%d",b);}
    }

    return 0;
}*/
#include<stdio.h>
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    int i;
    int t = 1;

    if(a != 0 && b != 0){
        int min = a;
        
        // 修正：正确找出a和b中的较小值
        if(a > b){
            min = b;
        } else {
            min = a;  // 原代码这里是min = b，这是错误的
        }
        
        if(min == 1){
            printf("%d", min);
        } else {
            // 修正：循环应该从min递减到1
            for(i = min; i >= 1; i--){
                if(a % i == 0 && b % i == 0){
                    t = i;
                    break;  // 找到最大公约数后退出循环
                }
            }
            printf("%d", t);
        }
    } else {
        if(a != 0){
            printf("%d", a);
        } else {
            printf("%d", b);
        }
    }
    return 0;
}